package com;

import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * @author 后台赖骏
 * @version 1.0
 */
public class Service {
    public void mainMenu(){

        //这个是用于控制主菜单中do while循环
        boolean loop = true;
        String confirmStr = "y";

        do {
        Scanner scanner = new Scanner(System.in);
        //提示主菜单信息
        System.out.println("-------文件复制系统-------");
        System.out.println("输入1并且回车进行文件复制，输入2回车退出程序");
        int num = scanner.nextInt();
        //用户输入数据进行操作，使用switch进行判断
        switch (num){
            //case 1分支是调用复制功能的分支
            case 1:
                String oldPathName;
                String newPathName;
                String pattern;
                boolean loop1 = true;
                boolean loop2 = true;
                boolean isMatch1 ;
                boolean isMatch2 ;
                do {
                    //在这里是让用户输入原文件路径
                    System.out.println("请输入你要复制文件的路径");
                    oldPathName = scanner.next();
                    //使用正则表达式对内容进行判断，是否为路径格式
                    pattern = "^\\w:.*";
                    //使用正则表达式的方法对其进行判断
                 isMatch1 = Pattern.matches(pattern,oldPathName);
                if (!(isMatch1)){
                    //若不正确则对用户提示
                    System.out.println("请输入正确的路径，例如：C：\\\\**\\\\***\\\\***");
                    continue;
                }
                //进行二级确认，让用户有一次确认前修改机会
                    System.out.println("请确认你要复制的文件路径为 "+oldPathName +"吗？");
                    System.out.println("请输入y进行确认(输入其他默认修改)");
                    String confirm = scanner.next();
                    if (confirmStr.equals(confirm)){
                        loop1 = false;
                    }
                }while (loop1);

                do {
                    //复制的目标路径与上面类同，除了没有二级确认
                    System.out.println("请输入你要复制到的目标路径");
                   newPathName = scanner.next();
                     isMatch2 = Pattern.matches(pattern,newPathName);
                    if (!(isMatch2)){
                        System.out.println("请输入正确的路径，例如：C：\\\\**\\\\***\\\\***");
                        continue;
                    }
                    loop2 = false;
                }while (loop2);
                //调用核心方法进行确认
                try {
                    FileCopier.copy(oldPathName,newPathName);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                break;
            case 2:
                //分支2为退出程序
                System.out.println("真的要退出程序了吗？输入y确定(输入其他默认返回)");
                String confirm1 =scanner.next();
                if (confirmStr.equals(confirm1)){
                    loop = false;
                }
                break;
                //如果输入为其他数，则提示错误信息
            default:
                System.out.println("输入错误，请重新输入");
        }
        }while(loop);
    }

}
